package service;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;

import modele.Group;
import modele.Marqueur;
import modele.NotificationMarqueur;
import modele.User;
import dao.MarqueurDao;
import dao.NotificationMarqueurDao;

public class MarqueurManager {
	
	/**
	 * 
	 * @param idMarqueur
	 * @return
	 */
	
	public static Marqueur getMarqueur(int idMarqueur)
	{
		Marqueur marqueur = MarqueurDao.getMarqueur(idMarqueur);
		return marqueur;
	}
	
	
	/**
	 * 
	 * @param group
	 * @param description
	 * @param lattitude
	 * @param longitude
	 * @param date
	 * @param user
	 * @return
	 */
	public static Marqueur addMarqueur(Group group, String description,
			double lattitude, double longitude, Date date, User user) {
		// TODO Auto-generated method stub
		Marqueur marqueur = new Marqueur(group,description,lattitude, longitude, date, user);
		int id = MarqueurDao.addMarqueur(marqueur);
		marqueur = MarqueurDao.getMarqueur(id);
		
		Set<User> users = group.getInvites();
		Iterator<User> it = users.iterator();
		
		while (it.hasNext()){
			User participant = it.next();
			//Pas de notification pour le createur
			if (participant!=user){
				NotificationMarqueur nm = new NotificationMarqueur(participant, marqueur);
				NotificationMarqueurDao.addNotificationMarqueur(nm);
			}
		}
		
		return marqueur;
	}
	
	/**
	 * 
	 * @param marqueur
	 * @return
	 */
	public static boolean deleteMarqueur(Marqueur marqueur)
	{
		MarqueurDao.deleteMarqueur(marqueur);
		return true;
	}

	public static ArrayList<Marqueur> getMarqueurs(Group group){
		return MarqueurDao.getMarqueurs(group);
	}
	
}
